
package EntidadesController;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;


public class Avaliacao {

    private String matricula;
    private String nome;
    private String idturma_x_discente = "";
    private String unidade = "";
    private String nota = "";
    private SQLException erro = new SQLException();
    static Connection conexao = null;
    static Statement estado = null;
    static ResultSet rs;
    private String msgerro;
    private boolean render=false;

    /** Estabelece a comunicação com o banco de dados.

     * @author Equipe de desenvolvimento - 3G Notifier

     */
    public Avaliacao() {
        conexao = new Conexao().Acesso();
    }

    /** Este método consiste na inserção uma nota na tabela 'Avaliacao'

     * @author Equipe de desenvolvimento - 3G Notifier

     * @return String - Retorna valor 'success' ou 'failure'

     */
     public String inserir() throws SQLException {
        String result_inserir = "failure";
        /*idturma_x_discente serial NOT NULL,
        unidade character varying(20),
        nota character varying(20),
        sala_descricao character varying(20),*/
        try {
            estado = conexao.createStatement();

            estado.execute("INSERT INTO avaliacao(idturma_x_discente, unidade, nota) VALUES ('" + idturma_x_discente + "','" + unidade + "','" + nota + "')");
            estado.close();
            result_inserir = "success";
            render = false;
        } catch (SQLException e) {
            this.erro = e;
            msgerro = erro.getLocalizedMessage();

            if (msgerro.contains("pk_matriculadisc")&&msgerro.contains("unicidade"))
            {msgerro = "Esse número de matrícula ja está cadastrado!";}
            //estado.execute("ROLLBACK");
            estado.close();
            result_inserir = "failure";
            render = true;
        }
        return result_inserir;
    }

     /** Função GET: monta uma lista do tipo String com idturma_x_discente da tabela turma_has_discente
      * @author Equipe de desenvolvimento - 3G Notifier
      * @return items - List<SelectItem>
      */
    public List<SelectItem> getIdturma_x_discente() throws SQLException {

        List<SelectItem> items = new ArrayList<SelectItem>();

        estado = conexao.createStatement();
        rs = estado.executeQuery("SELECT * FROM turma_has_discente");
        while (rs.next() == true) {
            idturma_x_discente = rs.getString(1);
            items.add(new SelectItem(this, idturma_x_discente));
        }
     return items;
 }


    /** Função GET
      * @author Equipe de desenvolvimento - 3G Notifier
      * @return idturma_x_discente - String
      */

    public boolean isRender() {
        return render;
    }

    public void setRender(boolean render) {
        this.render = render;
    }


     public String getIdturma_x_discenteN() {
        return idturma_x_discente;
    }

     /** Função GET
      * @author Equipe de desenvolvimento - 3G Notifier
      * @return erro.get.Message - String
      */
    public String getErro() {
        return erro.getMessage();
    }

    /** Função SET
      * @author Equipe de desenvolvimento - 3G Notifier
      * @param idturma_x_discente - String
      */
    public void setIdturma_x_discente(String idturma_x_discente) {
        this.idturma_x_discente = idturma_x_discente;
    }
    public String getMsgerro() {
        return msgerro;
    }


    /** Função GET
      * @author Equipe de desenvolvimento - 3G Notifier
      * @return nota - String
      */

    public void setMsgerro(String msgerro) {
        this.msgerro = msgerro;
    }


    public String getNota() {
        return nota;
    }

    /** Função SET
      * @author Equipe de desenvolvimento - 3G Notifier
      * @param nota - String
      */
    public void setNota(String nota) {
        this.nota = nota;
    }

    /** Função GET
      * @author Equipe de desenvolvimento - 3G Notifier
      * @return unidade - String
      */
    public String getUnidade() {
        return unidade;
    }

    /** Função SET
      * @author Equipe de desenvolvimento - 3G Notifier
      * @param unidade - String
      */
    public void setUnidade(String unidade) {
        this.unidade = unidade;
    }

    /** Função GET
      * @author Equipe de desenvolvimento - 3G Notifier
      * @return matricula - String
      */
    public String getMatricula() {
        return matricula;
    }
    
    /** Função SET
      * @author Equipe de desenvolvimento - 3G Notifier
      * @param matricula - String
      */
    public void setMatricula(String matricula) {
        this.matricula = matricula;
    }

    /** Função GET
      * @author Equipe de desenvolvimento - 3G Notifier
      * @return nome - String
      */
    public String getNome() {
        return nome;
    }

    /** Função SET
      * @author Equipe de desenvolvimento - 3G Notifier
      * @param nome - String
      */
    public void setNome(String nome) {
        this.nome = nome;
    }

}
